Digital video recording (DVR) applications are becoming more prevalent in today's marketplace. These applications typically involve recording digital terrestrial, cable or satellite bit streams to a local or network storage device, such as a hard disk drive. The local availability of the bit stream during playback allows users to pause, fast forward, and rewind content similar to the operation of a video cassette recorder (VCR). These special modes of video operation are often referred to as trick modes or trick-play modes. A common difficulty with implementing trick modes is the decoding dependency between pictures in a digital video bit stream.
A digital video bit stream may be partitioned into successive groups of pictures (GOPs), where each picture or frame in the GOP may be of a pre-defined picture coding type. In this regard, a video standard that is generally considered is the MPEG-2 standard, defined in ISO/IEC JTC1/SC29, “Generic coding of moving pictures and associated audio”, ISO/IEC 13818-2, Draft International Standard, November 1994. In MPEG-2 applications, the picture coding types may comprise intra-coded pictures, predicted pictures, and bidirectional-predicted pictures. The intra-coded, or I-pictures, may only use the information within the picture to perform video compression or encoding. These self-contained I-pictures provide a base value or anchor that is an estimate of the value of succeeding pictures. Each GOP may generally start with a self-contained I-picture as the reference or anchor frame from which the other frames in the group may be generated for display. A GOP may start with an I-picture when describing the transmission, decoding, and/or processing order of a picture sequence, for example.
The GOP frequency, and correspondingly the frequency or periodicity of I-pictures, may be driven by specific application spaces. The predicted, or P-pictures, may use a motion estimation scheme that generates motion vectors that may be utilized to predict picture elements from previously encoded pictures. Compressing or encoding the difference between predicted samples and the source value results in better coding efficiency than that which may be achieved by transmitting the encoded version of the source picture information. At a receiver or decoder side, the compressed or encoded difference picture is decoded and subsequently added to a predicted picture for display.
The bidirectional-predicted pictures, or B-pictures, may use multiple pictures that occur in a future location in the GOP and/or in a past location in the GOP to predict the image samples. As with P-pictures, motion estimation may be used for pixel prediction in B-pictures and the difference between the original source and the predicted pictures may be compressed. At the receiver, or decoder, end, one or more B-pictures may be motion compensated and may be added to the decoded version of the compressed difference signal for display. Since both the P-pictures and B-pictures may be based on other pictures, they may be referred to as inter-coded pictures.
Another video standard is the advanced video coding (AVC) standard, JVT Editors (T. Wiegand, G. Sullivan, A. Luthra), “Draft ITU-T Recommendation and final draft international standard of joint video specification”, ITU-T Rec.H.264 | ISO/IEC 14496-10 AVC, JVT-G050r1, Geneva, May 2003, which is also known as JVT, H.264, or MPEG-4 Part 10. In the AVC standard, instead of B-picture, P-picture, and I-picture types, the type definitions are made slice-wise, where a slice may cover an entire picture. However, it is commonly accepted practice to refer to I-pictures as pictures which only contain intra-coded or I-slices, P-pictures as pictures which may contain predicted slices (P-slices) or I-slices, and B-pictures as pictures which may contain bi-directional or bi-predictive slices (B-slices), P-slices, or I-slices. In the AVC standard, the B-pictures may also be used for prediction, further complicating the decoding dependency between pictures in a bit stream.